package com.gmss.crawler.service;

import com.alibaba.fastjson.JSON;
import com.gmss.crawler.enums.CompanyEnum;
import com.gmss.crawler.module.company.domain.Company;
import com.gmss.crawler.utils.CrawlerCommonUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * parseUniversity大学、大学所在地
 * paserData研究所及所在地
 */
@Service
@Slf4j
public class PlaceCrawlerService {

    public static void main(String[] args) {
        //new PlaceCrawlerService().paserData();
        //new PlaceCrawlerService().parseUniversity();
    }

    public List<Company> paserData() {

//        String aa = "金川有色金属公司劳动卫生职业病研究所 甘肃 <br>上海机电工程科技情报研究所 上海 <br>华北石油管理局采油工艺研究所 河北 <br>华北油田井下工艺研究所 河北 <br>吉林省油田管理局钻采工艺研究所 吉林 <br>大庆石油管理局采油技术服务公司工艺研究所 黑龙江 <br>新疆石油管理局油田工艺研究所 新疆 <br>胜利油田设计规划研究院 山东 <br>四川石油管理局钻采工艺研究所 四川 <br>华北石油管理局橡胶制品暨防腐技术研究所 河北 <br>化学工业部乳胶工业研究所 云南 <br>中国人民银行武汉市分行科学技术研究所 湖北 <br>中国农业科学院兰州畜牧研究所 甘肃 <br>中国农业科学院农业自然资源和农业区划研究所 北京 <br>金陵石油化工公司塑料厂研究所 江苏 <br>中国轻工总会玻璃搪瓷研究所 上海 <br>四川维尼纶厂研究所 四川 <br>中国石油化工总公司.天津大学天津石油化工技术开发中心 天津 <br>中国石油化工总公司扬子石油化工公司研究院 江苏 <br>中国石化销售公司株洲石油储存研究所 湖南 <br>萍乡市焰花鞭炮科学研究所; 农业部烟花爆竹质量监督检验测试中心 江西 <br>化学工业部海洋涂料研究所 山东 <br>中国中医研究院第二临床医学研究所(中国中医研究院眼科研究所) 北京 <br>中国医学科学院生物医学工程研究所 天津 <br>民政部北京假肢科学研究所 北京 <br>卫生部长春生物制品研究所 吉林 <br>卫生部上海生物制品研究所 上海 <br>中国预防医学科学院病毒学研究所 北京 <br>中国医学科学院输血研究所 四川 <br>中国预防医学科学院流行病学微生物学研究所 北京 <br>中山医科大学寄生虫学研究所 广东 <br>中国医学科学院、中国协和医科大学阜外心血管病医院心血管病研究所 北京 <br>西北有色金属研究院; 西北高科技开发公司 陕西 <br>北京科技大学金属压力加工研究所 北京 <br>北京特种机械研究所 北京 <br>北京机械设备研究所 北京 <br>北京星航机电设备厂 北京 <br>铁道部第五工程局科学技术研究所 贵州 <br>机械工业部机械科学研究院 北京 <br>中国农业科学院科技文献信息中心 北京 <br>中国林业科学研究院林业科技信息研究所 北京 <br>铁道部劳动卫生研究所 北京 <br>化学工业部沈阳化工研究院 辽宁 <br>化学工业部锦西化工研究院 辽宁 <br>化学工业部晨光化工研究院; 四川省晨光高分子合成材料开发公司 四川 <br>新疆石油管理局地质调查处地球物理研究所 新疆 <br>中国预防医学科学院 北京 <br>中国福利会国际和平妇幼保健院计划生育研究室 上海 <br>上海新风化工研究所 浙江 <br>煤炭科学研究总院北京开采研究所 北京 <br>煤炭科学研究总院抚顺分院 辽宁 <br>煤炭科学研究总院唐山分院矿山测量研究所 河北 <br>煤炭科学研究总院唐山分院选煤研究所 河北 <br>煤炭科学研究总院太原分院 山西 <br>东北内蒙古煤炭工业联合公司长春煤炭科学研究所 吉林 <br>峰峰矿务局煤炭科学研究所 河北 <br>汾西矿务局科技处 山西 <br>徐州矿务局科学研究所 江苏 <br>淮南煤矿科学技术研究所 安徽 <br>牡丹江煤矿机械厂煤矿研究所 黑龙江 <br>铁岭选矿药剂厂研究所 辽宁 <br>大冶有色金属公司设计研究院 湖北 <br>石油勘探开发科学研究院石油天然气储量管理研究室 北京 <br>华北石油管理局油建一公司施工技术研究所 河北 <br>新疆石油管理局钻井工艺研究所 新疆 <br>石油勘探开发科学研究院油气田采收率研究所 北京 <br>胜利石油管理局钻井工艺研究院 山东 <br>水利部黄河水利委员会水利科学研究院 河南 <br>中国农业科学院兰州兽医研究所 甘肃 <br>中国农业科学院植物保护研究所 北京 <br>邮电部数据通信技术研究所; 北京数据通信技术总公司 北京 <br>中国健康教育研究所 北京 <br>河北省张家口煤矿机械研究所 河北 <br>锦州石油化工公司研究所 辽宁 <br>锦西炼油化工总厂研究院 辽宁 <br>金陵石化公司炼油厂研究所 江苏 <br>金陵石油化工公司南京炼油厂设备研究所 江苏 <br>光华化学工业公司冶金研究所 内蒙古 <br>核工业第八研究所 上海 <br>冶金工业部马钢自动化计控研究所 安徽 <br>冶金工业部上海宝山钢铁(集团)公司设计研究院 上海 <br>山西省太原钢铁公司钢铁研究所 山西 <br>包头钢铁稀土公司冶金研究所 内蒙古 <br>本溪钢铁公司钢铁研究所 辽宁 <br>马鞍山钢铁股份有限公司设计研究院 安徽 <br>天津钢铁研究所 天津 <br>贵州省贵阳钎钢研究所 贵州 <br>山东铝业公司研究院 山东 <br>湘乡铝厂科研所 湖南 <br>中国轻工业经济科技信息中心 北京 <br>中国核情报中心 北京 <br>冶金工业部信息标准研究院 北京 <br>中国舰船研究院科技情报研究所; 中国船舶工业总公司第七一四所 北京 <br>北京环境特性研究所 北京 <br>吉林大学人口研究所 吉林 <br>化学工业部南京化工厂研究所 江苏 <br>化学工业部湘东化工机械厂研究所 湖南 <br>化学工业部施工技术研究所 河北 <br>北京市北氧特种气体研究所 北京 <br>中国轻工总会陶瓷工业科学研究所 江西 <br>金陵石油化工公司南京烷基苯厂研究所 江苏 <br>化学工业部北京橡胶工业研究设计院 北京 <br>中国建筑材料科学研究院房建材料与混凝土研究所 北京 <br>无锡球墨铸铁研究所 江苏 <br>中日友好临床医学研究所 北京 <br>中国儿童发展中心 北京 <br>电子工业部第三十九研究所 陕西 <br>机械工业部上海工业自动化仪表研究所 上海 <br>中国中医研究院骨伤科研究所 北京 <br>洛阳光电技术发展中心 河南 <br>广播电影电视部设备制造厂无线电设计研究室 北京 <br>中国轻工总会电光源材料科学研究所 江苏 <br>中国轻工总会制鞋研究所 北京 <br>成都铁路局成都科研所 四川 <br>国家测绘局测绘经济与管理科学研究所 黑龙江 <br>冶金工业部天津地质研究院 天津 <br>国家海洋环境监测中心 辽宁 <br>湖北省地质科学研究所 湖北 <br>河北省地质矿产局综合研究地质大队 河北 <br>地质矿产部海洋地质研究所 山东 <br>中国农业科学院作物品种资源研究所 北京 <br>中国航天工业总公司二院十七所 北京 <br>中国航空工业总公司第六一八研究所 陕西 <br>内蒙古自治区气象科学研究所 内蒙古 <br>国家建筑材料工业局技术情报研究所 北京 <br>中国林业科学研究院资源信息研究所 北京 <br>水利部天津水利水电勘测设计研究院科学研究所 天津 <br>兰州炼油石化研究院 甘肃 <br>郑州铁路局西安科学技术研究所 陕西 <br>铁道部戚墅堰机车车辆工艺研究所 江苏 <br>核工业北京化工冶金研究院 北京 <br>中国核动力研究设计院 四川 <br>中国航空工业总公司第六０五研究所; 中国特种飞行器研究所; 华中机械研究所 湖北 <br>核工业第六研究所 湖南 <br>飞机强度研究所; 中国航空工业总公司第六二三研究所 陕西 <br>化学工业部科学技术研究总院 北京 <br>中国林业科学研究院林业经济研究所 北京 <br>新疆生产建设兵团农九师农业科学研究所(农业科学技术推广中心) 新疆 <br>中国烟草总公司郑州烟草研究院 河南 <br>中国轻工总会甘蔗糖业研究所 广东 <br>中国林业科学研究院资源昆虫研究所 云南 <br>航天材料及工艺研究所 北京 <br>中国出口商品包装研究所 天津 <br>北京振兴计量测试研究所 北京 <br>北京长城航空测控技术研究所; 中国航空工业总公司第六三四研究所 北京 <br>国务院发展研究中心 北京 <br>华北计算技术研究所 北京 <br>兰州炼油化工自动化研究院 甘肃 <br>北京中建建筑科学技术研究院 北京 <br>天津电气传动设计研究所 天津 <br>铁道部科学研究院运输及经济研究所 北京 <br>哈尔滨发动机制造公司设计研究所 黑龙江 <br>公安部交通管理科学研究所 江苏 <br>中国兵器工业总公司爆破器材研究所 江苏 <br>成都仪表机床研究所 四川 <br>大河珩磨机床研究所 宁夏 <br>北京特种工程机械研究所 北京 <br>国家国内贸易局郑州棉麻加工研究所 河南 <br>冶金工业部钢铁研究总院 北京 <br>中国石油化工总公司巴陵石油化工公司研究院 湖南 <br>湘潭钢铁公司钢铁研究所 湖南 <br>齐鲁石油化工公司研究院 山东 <br>铁道部四方车辆研究所 山东 <br>交通部西南水运工程科学研究所 重庆 <br>中国热带农业科学院热带作物研究所 海南 <br>中国水产科学研究院东海水产研究所 上海 <br>中国水产科学研究院长江水产研究所 湖北 <br>中国纺织总会科学技术研究所 北京 <br>国家技术监督局计量情报研究所 北京 <br>中国有色金属工业总公司西南铝加工厂研究所 重庆 <br>中国有色金属工业总公司铜陵有色金属公司设计研究院 安徽 <br>中国原子能科学研究院 北京 <br>中国轻工总会杭州机械设计研究所 浙江 <br>北京动力机械研究所 北京 <br>机械工业部郑州机械研究所 河南 <br>国家科委管理科学研究所 湖北 <br>中国科技促进发展研究中心 北京 <br>中国人民解放军总后勤部军需生产技术研究所 北京 <br>包头钢铁稀土公司劳动卫生职业病防治研究所 内蒙古 <br>湖南有色冶金劳动保护研究所 湖南 <br>沈阳火化设备研究所 辽宁 <br>中原石油勘探局采油工艺研究院 河南 <br>核工业华南地质局二九○研究所 广东 <br>河南省地质科学研究所 河南 <br>国土资源部四川地质矿产勘查开发局地质矿产科研所 四川 <br>西安核仪器厂研究所 陕西 <br>中国社会科学院数量经济与技术经济研究所 北京 <br>铁法矿务局煤炭科学研究所 辽宁 <br>地质矿产部地质研究所; 中国地质科学院地质研究所 北京 <br>建设部标准定额研究所 北京 <br>山东省地震预报研究中心 山东 <br>水利部成都勘测设计院科学研究所 四川 <br>农业部规划设计研究院; 中国农业工程研究设计院 北京 <br>国家国内贸易局食品检测科学研究所 北京 <br>中国药科大学抗生素研究室 江苏 <br>铁道部科学研究院金属及化学研究所 北京 <br>中国唱片总公司上海公司 上海 <br>铁道部标准计量研究所 北京 <br>国营第六七四厂产品研究 中国 <br>";
        String aa = "金川有色金属公司劳动卫生职业病研究所 甘肃 <br>上海机电工程科技情报研究所 上海 <br>华北石油管理局采油工艺研究所 河北 <br>华北油田井下工艺研究所 河北 <br>吉林省油田管理局钻采工艺研究所 吉林 <br>大庆石油管理局采油技术服务公司工艺研究所 黑龙江 <br>新疆石油管理局油田工艺研究所 新疆 <br>胜利油田设计规划研究院 山东 <br>四川石油管理局钻采工艺研究所 四川 <br>华北石油管理局橡胶制品暨防腐技术研究所 河北 <br>化学工业部乳胶工业研究所 云南 <br>中国人民银行武汉市分行科学技术研究所 湖北 <br>中国农业科学院兰州畜牧研究所 甘肃 <br>中国农业科学院农业自然资源和农业区划研究所 北京 <br>金陵石油化工公司塑料厂研究所 江苏 <br>中国轻工总会玻璃搪瓷研究所 上海 <br>四川维尼纶厂研究所 四川 <br>中国石油化工总公司.天津大学天津石油化工技术开发中心 天津 <br>中国石油化工总公司扬子石油化工公司研究院 江苏 <br>中国石化销售公司株洲石油储存研究所 湖南 <br>萍乡市焰花鞭炮科学研究所;农业部烟花爆竹质量监督检验测试中心 江西 <br>化学工业部海洋涂料研究所 山东 <br>中国中医研究院第二临床医学研究所(中国中医研究院眼科研究所) 北京 <br>中国医学科学院生物医学工程研究所 天津 <br>民政部北京假肢科学研究所 北京 <br>卫生部长春生物制品研究所 吉林 <br>卫生部上海生物制品研究所 上海 <br>中国预防医学科学院病毒学研究所 北京 <br>中国医学科学院输血研究所 四川 <br>中国预防医学科学院流行病学微生物学研究所 北京 <br>中山医科大学寄生虫学研究所 广东 <br>中国医学科学院、中国协和医科大学阜外心血管病医院心血管病研究所 北京 <br>西北有色金属研究院;西北高科技开发公司 陕西 <br>北京科技大学金属压力加工研究所 北京 <br>北京特种机械研究所 北京 <br>北京机械设备研究所 北京 <br>北京星航机电设备厂 北京 <br>铁道部第五工程局科学技术研究所 贵州 <br>机械工业部机械科学研究院 北京 <br>中国农业科学院科技文献信息中心 北京 <br>中国林业科学研究院林业科技信息研究所 北京 <br>铁道部劳动卫生研究所 北京 <br>化学工业部沈阳化工研究院 辽宁 <br>化学工业部锦西化工研究院 辽宁 <br>化学工业部晨光化工研究院;四川省晨光高分子合成材料开发公司 四川 <br>新疆石油管理局地质调查处地球物理研究所 新疆 <br>中国预防医学科学院 北京 <br>中国福利会国际和平妇幼保健院计划生育研究室 上海 <br>上海新风化工研究所 浙江 <br>煤炭科学研究总院北京开采研究所 北京 <br>煤炭科学研究总院抚顺分院 辽宁 <br>煤炭科学研究总院唐山分院矿山测量研究所 河北 <br>煤炭科学研究总院唐山分院选煤研究所 河北 <br>煤炭科学研究总院太原分院 山西 <br>东北内蒙古煤炭工业联合公司长春煤炭科学研究所 吉林 <br>峰峰矿务局煤炭科学研究所 河北 <br>汾西矿务局科技处 山西 <br>徐州矿务局科学研究所 江苏 <br>淮南煤矿科学技术研究所 安徽 <br>牡丹江煤矿机械厂煤矿研究所 黑龙江 <br>铁岭选矿药剂厂研究所 辽宁 <br>大冶有色金属公司设计研究院 湖北 <br>石油勘探开发科学研究院石油天然气储量管理研究室 北京 <br>华北石油管理局油建一公司施工技术研究所 河北 <br>新疆石油管理局钻井工艺研究所 新疆 <br>石油勘探开发科学研究院油气田采收率研究所 北京 <br>胜利石油管理局钻井工艺研究院 山东 <br>水利部黄河水利委员会水利科学研究院 河南 <br>中国农业科学院兰州兽医研究所 甘肃 <br>中国农业科学院植物保护研究所 北京 <br>邮电部数据通信技术研究所;北京数据通信技术总公司 北京 <br>中国健康教育研究所 北京 <br>河北省张家口煤矿机械研究所 河北 <br>锦州石油化工公司研究所 辽宁 <br>锦西炼油化工总厂研究院 辽宁 <br>金陵石化公司炼油厂研究所 江苏 <br>金陵石油化工公司南京炼油厂设备研究所 江苏 <br>光华化学工业公司冶金研究所 内蒙古 <br>核工业第八研究所 上海 <br>冶金工业部马钢自动化计控研究所 安徽 <br>冶金工业部上海宝山钢铁(集团)公司设计研究院 上海 <br>山西省太原钢铁公司钢铁研究所 山西 <br>包头钢铁稀土公司冶金研究所 内蒙古 <br>本溪钢铁公司钢铁研究所 辽宁 <br>马鞍山钢铁股份有限公司设计研究院 安徽 <br>天津钢铁研究所 天津 <br>贵州省贵阳钎钢研究所 贵州 <br>山东铝业公司研究院 山东 <br>湘乡铝厂科研所 湖南 <br>中国轻工业经济科技信息中心 北京 <br>中国核情报中心 北京 <br>冶金工业部信息标准研究院 北京 <br>中国舰船研究院科技情报研究所;中国船舶工业总公司第七一四所 北京 <br>北京环境特性研究所 北京 <br>吉林大学人口研究所 吉林 <br>化学工业部南京化工厂研究所 江苏 <br>化学工业部湘东化工机械厂研究所 湖南 <br>化学工业部施工技术研究所 河北 <br>北京市北氧特种气体研究所 北京 <br>中国轻工总会陶瓷工业科学研究所 江西 <br>金陵石油化工公司南京烷基苯厂研究所 江苏 <br>化学工业部北京橡胶工业研究设计院 北京 <br>中国建筑材料科学研究院房建材料与混凝土研究所 北京 <br>无锡球墨铸铁研究所 江苏 <br>中日友好临床医学研究所 北京 <br>中国儿童发展中心 北京 <br>电子工业部第三十九研究所 陕西 <br>机械工业部上海工业自动化仪表研究所 上海 <br>中国中医研究院骨伤科研究所 北京 <br>洛阳光电技术发展中心 河南 <br>广播电影电视部设备制造厂无线电设计研究室 北京 <br>中国轻工总会电光源材料科学研究所 江苏 <br>中国轻工总会制鞋研究所 北京 <br>成都铁路局成都科研所 四川 <br>国家测绘局测绘经济与管理科学研究所 黑龙江 <br>冶金工业部天津地质研究院 天津 <br>国家海洋环境监测中心 辽宁 <br>湖北省地质科学研究所 湖北 <br>河北省地质矿产局综合研究地质大队 河北 <br>地质矿产部海洋地质研究所 山东 <br>中国农业科学院作物品种资源研究所 北京 <br>中国航天工业总公司二院十七所 北京 <br>中国航空工业总公司第六一八研究所 陕西 <br>内蒙古自治区气象科学研究所 内蒙古 <br>国家建筑材料工业局技术情报研究所 北京 <br>中国林业科学研究院资源信息研究所 北京 <br>水利部天津水利水电勘测设计研究院科学研究所 天津 <br>兰州炼油石化研究院 甘肃 <br>郑州铁路局西安科学技术研究所 陕西 <br>铁道部戚墅堰机车车辆工艺研究所 江苏 <br>核工业北京化工冶金研究院 北京 <br>中国核动力研究设计院 四川 <br>中国航空工业总公司第六０五研究所;中国特种飞行器研究所;华中机械研究所 湖北 <br>核工业第六研究所 湖南 <br>飞机强度研究所;中国航空工业总公司第六二三研究所 陕西 <br>化学工业部科学技术研究总院 北京 <br>中国林业科学研究院林业经济研究所 北京 <br>新疆生产建设兵团农九师农业科学研究所(农业科学技术推广中心) 新疆 <br>中国烟草总公司郑州烟草研究院 河南 <br>中国轻工总会甘蔗糖业研究所 广东 <br>中国林业科学研究院资源昆虫研究所 云南 <br>航天材料及工艺研究所 北京 <br>中国出口商品包装研究所 天津 <br>北京振兴计量测试研究所 北京 <br>北京长城航空测控技术研究所;中国航空工业总公司第六三四研究所 北京 <br>国务院发展研究中心 北京 <br>华北计算技术研究所 北京 <br>兰州炼油化工自动化研究院 甘肃 <br>北京中建建筑科学技术研究院 北京 <br>天津电气传动设计研究所 天津 <br>铁道部科学研究院运输及经济研究所 北京 <br>哈尔滨发动机制造公司设计研究所 黑龙江 <br>公安部交通管理科学研究所 江苏 <br>中国兵器工业总公司爆破器材研究所 江苏 <br>成都仪表机床研究所 四川 <br>大河珩磨机床研究所 宁夏 <br>北京特种工程机械研究所 北京 <br>国家国内贸易局郑州棉麻加工研究所 河南 <br>冶金工业部钢铁研究总院 北京 <br>中国石油化工总公司巴陵石油化工公司研究院 湖南 <br>湘潭钢铁公司钢铁研究所 湖南 <br>齐鲁石油化工公司研究院 山东 <br>铁道部四方车辆研究所 山东 <br>交通部西南水运工程科学研究所 重庆 <br>中国热带农业科学院热带作物研究所 海南 <br>中国水产科学研究院东海水产研究所 上海 <br>中国水产科学研究院长江水产研究所 湖北 <br>中国纺织总会科学技术研究所 北京 <br>国家技术监督局计量情报研究所 北京 <br>中国有色金属工业总公司西南铝加工厂研究所 重庆 <br>中国有色金属工业总公司铜陵有色金属公司设计研究院 安徽 <br>中国原子能科学研究院 北京 <br>中国轻工总会杭州机械设计研究所 浙江 <br>北京动力机械研究所 北京 <br>机械工业部郑州机械研究所 河南 <br>国家科委管理科学研究所 湖北 <br>中国科技促进发展研究中心 北京 <br>中国人民解放军总后勤部军需生产技术研究所 北京 <br>包头钢铁稀土公司劳动卫生职业病防治研究所 内蒙古 <br>湖南有色冶金劳动保护研究所 湖南 <br>沈阳火化设备研究所 辽宁 <br>中原石油勘探局采油工艺研究院 河南 <br>核工业华南地质局二九○研究所 广东 <br>河南省地质科学研究所 河南 <br>国土资源部四川地质矿产勘查开发局地质矿产科研所 四川 <br>西安核仪器厂研究所 陕西 <br>中国社会科学院数量经济与技术经济研究所 北京 <br>铁法矿务局煤炭科学研究所 辽宁 <br>地质矿产部地质研究所;中国地质科学院地质研究所 北京 <br>建设部标准定额研究所 北京 <br>山东省地震预报研究中心 山东 <br>水利部成都勘测设计院科学研究所 四川 <br>农业部规划设计研究院;中国农业工程研究设计院 北京 <br>国家国内贸易局食品检测科学研究所 北京 <br>中国药科大学抗生素研究室 江苏 <br>铁道部科学研究院金属及化学研究所 北京 <br>中国唱片总公司上海公司 上海 <br>铁道部标准计量研究所 北京 <br>国营第六七四厂产品研究 中国 <br>";
        String[] b = aa.replaceAll("；", ";").split("<br>");
        List<Company> list = new ArrayList<>();
        String studyName = "";
        String address = "";
        for (String c : b) {
            String[] datas = c.split(" ");
            if (StringUtils.isNotBlank(datas[0]) && datas[0].contains(";")) {
                String[] names = datas[0].split(";");
                for (String name : names) {
                    studyName = name;
                    address = datas[1];
                    createCompany(list, studyName, address);
                }
            } else {
                studyName = datas[0];
                address = datas[1];
                createCompany(list, studyName, address);
            }

        }
        return list;
    }

    private void createCompany(List<Company> list, String studyName, String address) {
        Company company = new Company().builder()
                .companyName(studyName)
                .address(address)
                .companyType(CompanyEnum.GOVERNMENT_OFFICE.getValue())
                .build();
        list.add(company);
    }

    /**
     * 国内大学，大学所在地
     *
     * @return
     */
    public List<Company> parseUniversity() {
//        List<Map<String, String>> list = new ArrayList<>();
        List<Company> list = new ArrayList();

        for (int i = 0; i <= 2740; i += 20) {
//        for (int i = 0; i <= 40; i += 20) {
            Document doc = CrawlerCommonUtils.getDocument("https://gaokao.chsi.com.cn/sch/search.do?searchType=1&start=" + i);
            Elements tbodyElements = doc.select(".yxk-table table tbody");
            Elements thead = tbodyElements.select("tr").get(0).select("th");
            Map<String, Integer> theadMap = getStringIntegerType(thead);
            Elements trElements = tbodyElements.select("tr");
            universityInfo(trElements, theadMap, list);
        }
        System.out.println(JSON.toJSONString(list));
        return list;
    }

    public static Map<String, Integer> getStringIntegerType(Elements thead) {
        Map<String, Integer> theadMap = new HashMap<>();
        for (int i = 0; i < thead.size(); i++) {
            //获取各个标签
            String text = thead.get(i).text().replaceAll(" ", "");
            switch (text) {
                case "院校名称":
                    theadMap.put(text, i);
                    break;
                case "院校所在地":
                    theadMap.put(text, i);
                    break;
                case "教育行政主管部门":
                    theadMap.put(text, i);
                    break;
                case "院校类型":
                    theadMap.put(text, i);
                    break;
            }
        }
        return theadMap;
    }

    public static List<Company> universityInfo(Elements trElements, Map<String, Integer> theadMap, List<Company> list1) {
        //List<Map<String, String>> list = new ArrayList<>();
        //循环tr里所有元素
        for (int i = 1; i < trElements.size(); i++) {
            //Map<String, String> universityMap = new HashMap<>();
            Company company = new Company();
            for (Map.Entry<String, Integer> entry : theadMap.entrySet()) {
                String key = entry.getKey();        //表头名称
                Integer value = entry.getValue();       //所在位置   get(1)
                Elements tdElements = trElements.get(i).select("td");
                if (tdElements.size() < 0) {
                    continue;
                }
                if (StringUtils.equals(key, "院校名称")) {
                    String name = tdElements.get(value).text();
                    company.setCompanyName(name);
                }
                if (StringUtils.equals(key, "院校所在地")) {
                    String address = tdElements.get(value).text();
//                    universityMap.put("address", address);
                    company.setAddress(address);
                }
                if (StringUtils.equals(key, "教育行政主管部门")) {
                    String department = tdElements.get(value).text();
//                    universityMap.put("department", department);
                    company.setDepartment(department);
                }
                if (StringUtils.equals(key, "院校类型")) {
                    String type = tdElements.get(value).text();
//                    universityMap.put("type", type);
                    company.setShcoolType(type);
                    company.setCompanyType(CompanyEnum.SCHOOL.getValue());
                }

            }
            list1.add(company);
        }
        return list1;
    }
}
